const mongoose = require('mongoose')

mongoose.connect('mongodb://127.0.0.1:27017/bilibili').then(() => {
  console.log('准备使用')
}).catch(error => {
  console.log('初始连接错误', error)
})

mongoose.connection.on('error', error => {
  console.log('初始连接后错误', error)
})

mongoose.connection.on('disconnected', () => {
  console.log('失去连接错误')
})

mongoose.connection.on('connected', () => {
  console.log('连接成功connected')
})

mongoose.connection.once('open', () => { 
  console.log('连接成功open')

  const schema = new mongoose.Schema({
    name: {
      type: String,
      required: true,
      unique: true,
    },
    author: {
      type: String,
      default: '佚名',
    },
    price: Number,
    status: {
      type: String,
      enum: ['上架', '下架'],
    },
    is_hot: Boolean,
    tags: Array,
    create_time: Date,
    notes: mongoose.Schema.Types.Mixed,
  })

  // book单词书写为单数时，在数据库创建集合时会自动变为复数books
  const module = mongoose.model('book', schema)

  // module.create({
  //   name: '百年孤独',
  //   author: '加西亚·马尔克斯',
  //   price: 54.5,
  //   status: '上架',
  //   is_hot: true,
  //   tags: ['外国', '哥伦比亚', '小说', '诺贝尔文学奖'],
  //   create_time: new Date(),
  //   notes: '1982年加夫列尔·加西亚·马尔克斯凭借《百年孤独》获得诺贝尔文学奖，其它代表作有《霍乱时期的爱情》',
  // }).then(data => {
  //   console.log('插入成功', data)
  // }).catch(error => {
  //   console.log('插入失败', error)
  // })

  module.insertMany([
    {
      name: '百年孤独',
      author: '加西亚·马尔克斯',
      price: 54.5,
      status: '上架',
      is_hot: true,
      tags: ['外国', '哥伦比亚', '小说', '诺贝尔文学奖'],
      create_time: new Date(),
      notes: '1982年加夫列尔·加西亚·马尔克斯凭借《百年孤独》获得诺贝尔文学奖，其它代表作有《霍乱时期的爱情》',
    },
    { name: '活着', author: '余华', price: 20.99, is_hot: true },
    { name: '许三观卖血记', author: '余华', price: 48, is_hot: false },
    { name: '我胆小如鼠', author: '余华', price: 67.7, is_hot: false },
    { name: '天堂旅行团', author: '张嘉佳', price: 33.99, is_hot: true },
    { name: '云边有个小卖部', author: '张嘉佳', price: 18.88, is_hot: false },
    { name: '长安的荔枝', author: '马伯庸', price: 12, is_hot: true },
    { name: '太白金星有点烦', author: '马伯庸', price: 12, is_hot: false },
    { name: '明朝那些事儿', author: '当年明月', price: 266, is_hot: true },
    { name: '三体', author: '刘慈欣', price: 111, is_hot: true },
  ]).then(data => {
    console.log('插入成功', data)
  }).catch(error => {
    console.log('插入失败', error)
  })

})

mongoose.connection.on('close', () => {
  console.log('连接关闭')
})

mongoose.connection.on('reconnected', () => {
  console.log('重连成功')
})

// setTimeout(() => {
//   mongoose.disconnect()
// }, 5000)